package dominio;
import java.io.Serializable;
import java.sql.Date;
import java.util.ArrayList;
import java.util.List;

import dominioTO.ItemSolicitudTO;
import dominioTO.SolicitudRodamientosTO;



//SolicitudRodamientos lado ServidorDAO
public class SolicitudRodamientos implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private int idSolicitud;
	private String OrdenCompraCliente;
	private Cliente cliente;
	private Date fechaSolicitud;
	private List<ItemSolicitud> itemSolicitudes;
	private String estado;
	
	
	public SolicitudRodamientos() {
		super();
		// TODO Auto-generated constructor stub
	}
	
	//Getters & Setters
	public int getIdSolicitud() {
		return idSolicitud;
	}
	public void setIdSolicitud(int idSolicitud) {
		this.idSolicitud = idSolicitud;
	}
	public String getOrdenCompraCliente() {
		return OrdenCompraCliente;
	}
	public void setOrdenCompraCliente(String ordenCompraCliente) {
		OrdenCompraCliente = ordenCompraCliente;
	}
	public Cliente getCliente() {
		return cliente;
	}
	public void setCliente(Cliente cliente) {
		this.cliente = cliente;
	}
	public List<ItemSolicitud> getItemSolicitudes() {
		return itemSolicitudes;
	}
	public Date getFechaSolicitud() {
		return fechaSolicitud;
	}
	public void setFechaSolicitud(Date fechaSolicitud) {
		this.fechaSolicitud = fechaSolicitud;
	}
	public void setItemSolicitudes(List<ItemSolicitud> itemSolicitudes) {
		this.itemSolicitudes = itemSolicitudes;
	}
	/**
	 * @return the estado
	 */
	public String getEstado() {
		return estado;
	}

	/**
	 * @param estado the estado to set
	 */
	public void setEstado(String estado) {
		this.estado = estado;
	}

	public SolicitudRodamientosTO getDTO()
	{
		SolicitudRodamientosTO aux = new SolicitudRodamientosTO();
		aux.setCliente(cliente.getDTO());
		aux.setFechaSolicitud(fechaSolicitud);
		aux.setId(idSolicitud);
		if(itemSolicitudes!=null)
		{
			List<ItemSolicitudTO> itemTO = new ArrayList<ItemSolicitudTO>();
			for(ItemSolicitud itemSol : itemSolicitudes)
			{
				itemTO.add(itemSol.getDTO());
			}
			aux.setItemSolicitudes(itemTO);
		}
		aux.setOrdenCompraCliente(OrdenCompraCliente);
		return aux;
	}
	
	public static SolicitudRodamientos convertirTO(SolicitudRodamientosTO dto)
	{
		SolicitudRodamientos aux = new SolicitudRodamientos();
		aux.setCliente(Cliente.convertirToACliente(dto.getCliente()));
		aux.setFechaSolicitud(dto.getFechaSolicitud());
		aux.setIdSolicitud(dto.getId());
		
		
		if(dto.getItemSolicitudes()!=null)
		{
			List<ItemSolicitudTO> itemsTO =dto.getItemSolicitudes(); 
			
			List<ItemSolicitud> item = new ArrayList<ItemSolicitud>();
			
			for(ItemSolicitudTO itemSol : itemsTO)
			{
				item.add(ItemSolicitud.convertirTO(itemSol));
			}
			aux.setItemSolicitudes(item);
		}
		aux.setOrdenCompraCliente(dto.getOrdenCompraCliente());
		
		return aux;
	}

	@Override
	public String toString() {
		return "SolicitudRodamientos [idSolicitud=" + idSolicitud
				+ ", OrdenCompraCliente=" + OrdenCompraCliente + ", cliente="
				+ cliente + ", fechaSolicitud=" + fechaSolicitud
				+ ", itemSolicitudes=" + itemSolicitudes + "]";
	}
	
	
}
